package com.example.order.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.web.client.RestTemplate;

/**
 * @Author 刘武贵
 * @Date 2024/2/28 1:07
 * @Description 功能描述：负载均衡配置类 使用Ribbon实现负载均衡
 * 文章链接：解决RestTemplate的No instances available for localhost错误-CSDN博客 https://blog.csdn.net/weixin_44607626/article/details/123484458
 */
@Configuration
public class LoadBalanceConfig {

    /**
     * OrderServiceV4Impl 专用
     * 创建一个带有负载均衡的RestTemplate Bean
     * @return 返回一个RestTemplate实例
     */

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }


    /**
     * =========================================== OrderServiceV1Impl-OrderServiceV3Impl专用 ===========================================
     */
    /**
     * 使用@LoadBalanced注解，将RestTemplate实例注入到Spring容器中
     * @return RestTemplate实例
     */
    @LoadBalanced
    @Bean
    public RestTemplate loadBalanced1() {
        return new RestTemplate();
    }

    /**
     * 设置RestTemplate实例为默认的RestTemplate实例
     * @return RestTemplate实例
     */
//    @Primary
//    @Bean
//    public RestTemplate restTemplate() {
//        return new RestTemplate();
//    }



}